package com.ruoyi.detail.domain;

import java.math.BigDecimal;
import java.util.Date;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 订单详情信息对象 wdm_order_detail
 * 
 * @author ruoyi
 * @date 2025-06-03
 */
public class OrderDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 详情ID */
    private Long detailId;

    /** 订单ID */
    @Excel(name = "订单ID")
    private Long orderId;

    /** 商品ID */
    @Excel(name = "商品ID")
    private Long goodsId;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String goodsName;

    /** 主图 */
    @Excel(name = "主图")
    private String mainImage;

    /** 单价 */
    @Excel(name = "单价")
    private BigDecimal price;

    /** 数量 */
    @Excel(name = "数量")
    private String quantity;

    /** 小计 */
    @Excel(name = "小计")
    private BigDecimal subtotal;

    /** 入住日期（酒店） */
    @Excel(name = "入住日期", readConverterExp = "酒=店")
    private Date checkinDate;

    /** 退房日期（酒店） */
    @Excel(name = "退房日期", readConverterExp = "酒=店")
    private Date checkoutDate;

    /** 物流单号（商品） */
    @Excel(name = "物流单号", readConverterExp = "商=品")
    private String logisticsNo;

    /** 快递公司（商品） */
    @Excel(name = "快递公司", readConverterExp = "商=品")
    private String express;

    /** 子状态 */
    @Excel(name = "子状态")
    private String subStatusType;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    /** 删除标志 */
    private String delFlag;

    /** 版本号（乐观锁） */
    private Long version;

    /** 扩展元数据 */
    @Excel(name = "扩展元数据")
    private String orderExtra;

    public void setDetailId(Long detailId) 
    {
        this.detailId = detailId;
    }

    public Long getDetailId() 
    {
        return detailId;
    }

    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }

    public void setGoodsId(Long goodsId) 
    {
        this.goodsId = goodsId;
    }

    public Long getGoodsId() 
    {
        return goodsId;
    }

    public void setGoodsName(String goodsName) 
    {
        this.goodsName = goodsName;
    }

    public String getGoodsName() 
    {
        return goodsName;
    }

    public void setMainImage(String mainImage) 
    {
        this.mainImage = mainImage;
    }

    public String getMainImage() 
    {
        return mainImage;
    }

    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }

    public void setQuantity(String quantity) 
    {
        this.quantity = quantity;
    }

    public String getQuantity() 
    {
        return quantity;
    }

    public void setSubtotal(BigDecimal subtotal) 
    {
        this.subtotal = subtotal;
    }

    public BigDecimal getSubtotal() 
    {
        return subtotal;
    }

    public void setCheckinDate(Date checkinDate) 
    {
        this.checkinDate = checkinDate;
    }

    public Date getCheckinDate() 
    {
        return checkinDate;
    }

    public void setCheckoutDate(Date checkoutDate) 
    {
        this.checkoutDate = checkoutDate;
    }

    public Date getCheckoutDate() 
    {
        return checkoutDate;
    }

    public void setLogisticsNo(String logisticsNo) 
    {
        this.logisticsNo = logisticsNo;
    }

    public String getLogisticsNo() 
    {
        return logisticsNo;
    }

    public void setExpress(String express) 
    {
        this.express = express;
    }

    public String getExpress() 
    {
        return express;
    }

    public void setSubStatusType(String subStatusType) 
    {
        this.subStatusType = subStatusType;
    }

    public String getSubStatusType() 
    {
        return subStatusType;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public void setVersion(Long version) 
    {
        this.version = version;
    }

    public Long getVersion() 
    {
        return version;
    }

    public void setOrderExtra(String orderExtra) 
    {
        this.orderExtra = orderExtra;
    }

    public String getOrderExtra() 
    {
        return orderExtra;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("detailId", getDetailId())
            .append("orderId", getOrderId())
            .append("goodsId", getGoodsId())
            .append("goodsName", getGoodsName())
            .append("mainImage", getMainImage())
            .append("price", getPrice())
            .append("quantity", getQuantity())
            .append("subtotal", getSubtotal())
            .append("checkinDate", getCheckinDate())
            .append("checkoutDate", getCheckoutDate())
            .append("logisticsNo", getLogisticsNo())
            .append("express", getExpress())
            .append("subStatusType", getSubStatusType())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("version", getVersion())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("remark", getRemark())
            .append("orderExtra", getOrderExtra())
            .toString();
    }
}
